1. Field of the Invention
The present invention relates generally to the field of data distribution, and more particularly to a system and method for synchronizing data to mobile devices.
2. Description of the Prior Art
In networked computer systems data is commonly stored in a central location such as a collection of disk drives connected to a network server. In networked computer systems such as those commonly found in business offices, a network server includes a primary data storage system for the network, and the networked computers access files and other data from the network server to cache locally. Increasingly, mobile devices such as laptop computers, handheld computers, and Personal Digital Assistants (PDAs) are being linked to networked computer systems. Typically, a mobile device is only connected to a network server for a short periods of time. During these times it is usually desirable to synchronize data between the network server and the mobile device.
Perhaps the simplest implementation of a method for synchronizing data between a network server and a mobile device is to replicate to the mobile device all of the data stored on the network server. While this method is simple to implement, it is generally impractical. A significant problem is that most network servers store a quantity of data that exceeds the storage capacity of the mobile device. Accordingly, any practical method for synchronizing data between a network server and a mobile device must limit the quantity of data that will be synchronized.
Ideally, a method for synchronizing data between a network server and a mobile device will limit the quantity of synchronized data to only that which is necessary for the operation of the mobile device. Limiting the quantity of synchronized data serves at least two important goals. First, it lessens the length of time necessary to perform a synchronization. Second, it allows the mobile device to devote less memory capacity to data storage, which makes more capacity available to be used by software applications. Since insufficient free memory will typically cause applications on a mobile device to execute slowly, limiting the quantity of synchronized data will tend to improve the operation of software applications running on the mobile device.
Accordingly, what is needed is an efficient way to identify an appropriate subset of the data on a network server during a synchronization.